package com.lvyq.myplayer.net

import com.google.gson.Gson
import java.lang.reflect.ParameterizedType

/**
 * 文件描述：MRequest 请求基类
 * 作者：lvyq
 * 创建时间：2025-02-21
 * 修改时间：2025-02-21
 */
open class MRequest<RESPONSE>(val type:Int,val url:String ,val handler: ResponseHandler<RESPONSE>) {


    /**
     * 数据解析
     */
    fun parseResult(result: String?): RESPONSE {
        val gson = Gson()
        //获取泛型类型
        val type = (this.javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0]
        var data = gson.fromJson<RESPONSE>(result,type)
        return data
    }

    /**
     * 发送请求
     */
    fun excute(){
        //发送请求
        NetManager.manager.senRequest(this)
    }
}